package components;

import fr.irit.smac.muadl.impl.j.QuasiComponent;

public abstract class QuasiComponentSkills
		extends
			QuasiComponent<AdapterSkills> {

	abstract public boolean allrequiredMMMEareProducible(
			java.util.ArrayList<tools.MMME> requiredMmmes);

	abstract public boolean evalMostCriticicalProcess();

	abstract public boolean oneOfProvidedMMMEisIncorporated(
			java.util.ArrayList<tools.MMME> providedMmmes);

	abstract public boolean oneOfProvidedMMMEisConcurent(
			java.util.ArrayList<tools.MMME> providedMmmes);

	abstract public boolean oneOfProvidedMMMEisRedundant(
			java.util.ArrayList<tools.MMME> providedMmmes);

	abstract public void Stimulate(java.util.ArrayList<tools.MMME> mmmes);

	protected java.util.ArrayList<tools.MMME> getRequiredMMME() {
		return this.architecture().getRequiredMMME();
	}

	protected java.util.ArrayList<tools.MMME> getProvidedMMME() {
		return this.architecture().getProvidedMMME();
	}

	protected int getCriticity() {
		return this.architecture().getCriticity();
	}

	protected int getProcessNumber() {
		return this.architecture().getProcessNumber();
	}

	protected impl.AgentRef getId() {
		return this.architecture().getId();
	}

}
